"""
学生信息管理系统v1.0
"""

# 创建学生类
class Student:
    # 创建构造函数
    def __init__(self, student_id, name, age):
        self.student_id = student_id
        self.name = name
        self.age = age
        print(f"初始化了{self.name}")

# 创建学生管理器类
class StudentManager:
    # 构造函数
    def __init__(self):
        self.students = []
        print("初始化了学生管理器")

    # 添加学生的方法add_student
    def add_student(self, student):
        # 列表的元素追加
        self.students.append(student)
        print(f"追加了学生{student.name}")
        # 打印出这个学生的学号、姓名、年龄
        print(f"学号：{student.student_id}，姓名：{student.name}，年龄：{student.age}")

    # 查询学生的方法search_student
    # 添加查询学生的逻辑
    def search_student(self, message):
        # for循环遍历self.students列表
        for student in self.students:
            if message in student.name or message in student.student_id:
                print(f"姓名：{student.name}, 学号{student.student_id}, 年龄：{student.age}")

    # TODO 显示列表的方法view_list
    def view_list(self):
        for student in self.students:
            print(f"学号：{student.student_id}, 姓名：{student.name}, 年龄：{student.age}")

# 编写一个菜单
def display_menu():
    print("=" * 30)
    print("学生信息管理系统")
    print("=" * 30)
    print("1.添加学生 2.查询学生 3.删除学生 4.显示列表 5.退出")
    choice = input("请选择操作：")
    print(f"选择了{choice}")
    return choice


def main():
    # 创建一个学生管理器(通讯录)
    manager = StudentManager()
    while True:
        choice = display_menu()
        if choice == "1":
            # 向学生管理器中添加学生
            print("执行添加学生")
            # 使用input函数，接收学号。提示：请输入学号：
            student_id = input("请输入学号：")
            # 使用input函数，接收姓名。提示：请输入姓名：
            name = input("请输入姓名：")
            # 使用input函数，接收年龄。提示：请输入年龄：
            age = input("请输入年龄：")
            # 使用这三条信息创建一个学生
            student1 = Student(student_id, name, age)
            # 使用学生管理器添加student1（重点）
            manager.add_student(student1)
        # 当接收到其他choice时，打印不同的操作（条件分支语句）
        elif choice == "2":
            print("执行查询学生")
            # 在这里编写代码
            message = input("请输入学号或姓名：")
            manager.search_student(message)    # 自己编写一个查找学生的方法
        elif choice == "3":
            print("执行删除学生")
        elif choice == "4":
            print("执行显示列表")
            # TODO 在这里编写调用显示列表的功能
            # 调用manager的view_list()方法
            manager.view_list()
            pass
        elif choice == "5":
            print("执行退出")
            break
        else:
            print("不要乱输！！！！！！！！！！")


# 添加运行条件
if __name__ == '__main__':
    main()
